# 一、数据来演分析

## 1.明确需求
"""即明确采集的网站以及数据内容"""''
### 网址
### 数据内容

## 2、抓包分析
"""即明确采集的网站以及数据内容"""
### 打开开发者工具
### 刷新网页
### 通过关键字搜索找到对应的数据位置(一般是m3u8文件)



# 二、代码实现步骤

## 导包
import requests
import re
"""1.发送请求"""
## (1)模拟浏览器：使用请求头参数进行模拟伪装
headers = {
    "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
    "accept-encoding": "gzip, deflate, br, zstd",
    "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
    "priority": "u=0, i",
    "referer": "https://jx.vcs6.com/vip/?",
    "sec-ch-ua": "\"Chromium\";v=\"140\", \"Not=A?Brand\";v=\"24\", \"Microsoft Edge\";v=\"140\"",
    "sec-ch-ua-mobile": "?0",
    "sec-ch-ua-platform": "\"Windows\"",
    "sec-fetch-dest": "iframe",
    "sec-fetch-mode": "navigate",
    "sec-fetch-site": "cross-site",
    "sec-fetch-storage-access": "active",
    "sec-fetch-user": "?1",
    "upgrade-insecure-requests": "1",
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0"
}

## (2)获取地址???找不到???
### ！原因！——>没有在视频一播放就搜索m3u8
m3u8_url = 'https://202.189.8.170/Cache/qq/6ccfe5f71cfbea39f778ca7765bf8ad1.m3u8?vkey=3864383556415547557745494341594955776b4943414544423164535777526642676c635877425341314e6456775a6442774a53'
#### 还打不开就是要加反盗链~ 在请求头的"referer"添加实际视频网站的域名而不是链接

## (3)发送请求
response = requests.get(url=m3u8_url, headers=headers)



"""2.获取数据"""
## (1)获取响应的文本数据 -> 获取m3u8文件内容(字符串)
m3u8 = response.text
print(m3u8)

"""3.解析数据"""
## 提取ts链接，封装进列表里
ts_list = re.findall(',\n(.*?)\n#', m3u8)
## 拿到固定不变的前缀
ts_name = '/'.join(m3u8_url.split('/')[:-1]) + '/'
## for循环遍历ts链接列表，提取一直在变的那一部分
for ts in ts_list:
    ## 固定的前缀与一直改变的m3u8流拼接，构建完整的ts链接地址
    ts_url = ts_name + ts


"""4.保存数据"""
## 获取视频内容
ts_content = requests.get(url=ts_url, headers=headers).content
## 以二进制追加的形式保存数据
with open('1.MP4', 'ab') as f:
    ## 写入数据
    f.write(ts_content)




